//
//  PSMove.h
//  PrefCore
//
//  Created by Sergey on 5/13/14.
//  Copyright (c) 2014 Play-on-smart. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "PSCard.h"
#import "PSObjectPool.h"
#import "PSGame.h"

@class PSNode;

@interface PSMove : NSObject <PSListEntry>

+(PSObjectPool*)pool;

@property (nonatomic, readonly) PSCardIndex c0;

@property (nonatomic, readonly) PSCardIndex c1;

@property (nonatomic, readonly) PSCardIndex c2;

@property PSNode *node;

+(instancetype)moveWithCard0:(PSCard*)c0
                       card1:(PSCard*)c1
                       card2:(PSCard*)c2
                     andNode:(PSNode*)node;

-(PSCardIndex)cardForPlayerId:(PSPlayerId)playerId;

-(void)destroyWithRecycle:(BOOL)recycle;

-(NSString*)description;

@property (nonatomic, readwrite) PSMove *next;

@property (nonatomic, readwrite) PSMove *previous;

@end
